The maximum length of an MQSeries message written is 100 MB (104 857 600 bytes).
To support messages larger than 4MB (4194304 bytes), which is the default value for the Maximum Message Length property for a queue manager object, queue object or Server Connection channel object, you have to change the value for the Maximum Message Length property for each of them. In MQ Explorer you do this on the Extended tab of the properties for each object.
For a typical IDS setup, you would have to change the Maximum Message Length property for the queue manager, request queue, result queue, and the server connection channel used.
In version 1.8 and earlier, use a Client Connection Channel that will bind to a Server Connection Channel object that has been modified to support messages larger than 4MB. You do this by creating a Client Connection Channel for the same queue manager that contains the Server Connection Channel that has been modified. When you create the Client Connection Channel, you must...
Specify the same name as that of the Server Connection Channel
Use the IP address of the box hosting the queue manager as the Connection Name — be sure to include the port number for the listener, such as 10.1.10.101(1416)
Specify the same Maximum Message Length property value
Leave the queue manager field blank
Then restart the queue manager for the changes to take effect.
Next, copy the AMQCLCHL.TAB file for the queue manager onto the computer running IDS. The typical location of this file would be the following subdirectory:
qmgrs\queueManagerName\@ipcc
under the MQSeries installation directory, where queueManagerName represents the name of the queue manager you created. Each queue manager will have its own tab file.
The AMQCLCHL.TAB file, or Channel Definition Table, contains the client connection information you need to connect to the queue manager.
Once you copy the tab file to the computer running IDS, specify these system environment variables:
Variable |
This variable |
MQCHLLIB |
Points to the path where the tab file is located. |
MQCHLTAB |
Contains the name of the tab file. |
Here is an example:
MQCHLLIB = c:\docserv\ibm\tabfile
MQCHLTAB = AMQCLCHL.TAB
Then specify an asterisk (*) as the value for the queue manager in the server and client configuration files for IDS (you must also specify client mode). Here is an example:
< DBHandler:MQSeries >
Client = Yes
QueueManager = *
IDS should then be able to process messages larger than 4MB.
Note | You cannot use the MQServer system environment variable to process messages larger than 4MB because it has a 4MB message size limitation. Also, make sure you do not have an MQServer system environment variable defined because it will override the MQCHLLIB and MQCHLTAB system environment variables. |
For IDS version 2.0 and higher, you just configure the queue manager, request queue, result queue, and Server Connection Channel to support messages larger than 4MB. Then restart the queue manager and specify the Server Connection Channel name along with all other MQ properties in the queue configuration section of the server and client configuration files for IDS.
It is a simpler configuration in IDS version 2.0 and higher because the Java code uses the MQEnvironment class which does not require any of the environment variables— it just needs to know the name of the Server Connection Channel that has been configured to support messages larger than 4MB.
© Copyright 2016, Oracle and/or its affiliates. All rights reserved. Legal notices.